約 188,140 件
https://w.atwiki.jp/kimh/pages/30.html
100629 C言語 ・プログラム コンピュータの動作内容を規定し記述したもの ・CPU ⇒ 電気のON・OFFで動作 ━━━━━━ 0と1で対応させて命令 例 2進 0011 1110 0000 1010 16進 3 E 0 A ⇒ 機械語 意味 Aレジスタに0Aという値をいれる 少し人間にわかるように記述 ⇒ アセンブリ言語 ↓ LD A、10 機械語に変換する仕組みを作っておく ※[10]進数 ・[0~9]までの[10]種類の数字を使ってあらわす。[9]より大きい量は桁を使って表す。 ・ある桁は1つ右の桁の[10]倍の量 ※[2]進数 ・[0~1]までの[2]種類の数字を使ってあらわす。[1]より大きい量は桁を使って表す。 ・ある桁は1つ右の桁の[2]倍の量 ※[16]進数 ・[0~F]までの[16]種類の数字・文字を使ってあらわす。[F]より大きい量は桁を使って表す。 ・ある桁は1つ右の桁の[16]倍の量 10進 2進 16進 0 0 0 1 1 1 2 10 2 3 11 3 4 100 4 5 101 5 6 110 6 7 111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F 16 1 0000 10 17 1 0001 11 18 1 0010 12 ○プログラム言語 ・機械語(1950年) ↓ ・アセンブリ言語 → Cobol → Fortran → ALGON(1960) →C(1972)→C++(1982)→JAVA(1990) ○構造化プログラミング ・手続きをいくつかの単位にわけメインとなる部分で大まかな処理を記述し細部をサブルーチンで記述する >プロシージャ・ルーチン・サブルーチン・メソッド・関数などの一連の働きを持ったものを任意の時点で呼び出せる タイプのプログラミング言語 ⇒ 手続き型言語 ○構成要素 ・順次・順接 : 上から順に一度ずつ実行する ┓ ・分岐 : 条件によって処理を分岐する ┣ これらの組み合わせで解を得る ・反復 : 指定回数繰り返し ┛ アルゴリズム ○コンパイラ freecommandlinetools2.exe コンパイラ setbcc15b.exe コンパイラの環境設定 ○C言語コンパイル コンパイラインストール borlandCコンパイラは、インストール先のbin\bcc32.exeでコンパイル コマンドプロンプト上で実行するには、パスの設定が必要 コマンドをどこのフォルダから探してくるのかを設定 パスの設定 環境変数PATH プログラムを書く ↓ c \c\rei1-1.cで保存 ↓ 機械語に変換したファイルを作る ↓ コマンドプロンプトで bcc32 rei1-1.c ↓ .exe .obj .tdsのファイルが作成される ソースファイル : そのファイル コーディング : ソースコードの記述 バグ : プログラマが意図しない動作 デバッグ : バグの修正 ○rei1-1.c #include stdio.h ヘッダーファイル int main (void) 関数の型(整数) 関数名(最初に実行される関数) (関数を実行するために必要な情報:引数)VOID=なし { printf ( Hello World! ); ┓ 関数名 引数 ┃関数の処理内容 return 0; ┛ } Printf関数 : 引数を画面に出力する関数 ライブラリ関数 : あらかじめ用意されている関数 ヘッダーファイル : ライブラリ関数についての情報が書かれてるファイル(これがないとライブラリ関数が使えない) rei1-1.c コマンドプロンプト bcc32 rei1-1.c ↓ ヘッダーファイルの展開 ↓ STDUO.Hの内容 ↓ rei1-1.obj 機械語に変換されたファイル ライブラリ(ライブラリ関数の機械語形式のファイル) ↓ rei1-1.exeライブラリ関数も含めた機械語のファイル ○コメント ・コンパイルの対象にならない文字列 /* コメント */ // コメント ←1行 ・ソースコード内で、改行・空白文字・タブは挿入可 ・全角の空白文字は記述しない ○printf関数はプログラム内の情報も出力できる >rei1-6.c printf( 10と5の和は%dです。 ,10+5); ━ %フォーマット指定子 d整数 printf(引数1,引数2); 引数1の%dというところに表示される値を、引数2から取り出す ○printfのフォーマット指定子 ・%d 整数 ・%f 実数(浮遊小数点) ・%lf 〃 ・%c 1文字⇒文字データは で囲む ・%s 文字列⇒文字列は で囲む ・%X 16進数 ○エスケープシーケンス 記号 意味 \a ベル文字(アラート) \b 1文字分戻る \f ページ送り(クリア) \n 改行、復帰 \r 同じ行の先頭に戻る \t 水平タブ \v 垂直タブ \\ \を表示 \? ?を表示 \ シングルクォーテーション( )を表示 \ ダブルクォーテーション( )を表示 \0 ヌル \N 8進定数(Nは8進数の定数) \xN 16進定数(Nは16進数の定数) ○変数 ・データを一時的に格納する器 ・変数の作り方 >宣言 例 int x; ━ ━ 型 変数名 ・int 整数 ・char 文字データ ・float 浮遊小数点数 ・double 倍精度浮動小数点数 ・void 値なし
https://w.atwiki.jp/nicocachenlwiki/pages/15.html
classファイルの更新日時が更新されないとき、build.cmdだと一瞬すぎてエラーが見えないと思ったことはありませんか?そんなときはbuild.cmdをテキストエディタで開いてgoto EOFの前にpauseを入れるとよいです。 extensionsフォルダにbuild.cmdがある場合にはbuild.cmd上に.javaファイルをドラッグ・アンド・ドロップするだけでOKです。上手くコンパイルされれば同名の.classファイルが生成されます。 build.cmdが無い場合にはダウンロードするか、このページの後半にあるソースコードをコピペして自分で作成するか、コマンドプロンプト/bash等を開いて以下のコマンドを入力して下さい。 Windows with javac cd (NicoCache_nlのフォルダ) ^ javac -classpath ./;./NicoCache_nl.jar extensions/YourExtension.java 例 cd C \NicoCache_nl ^ javac -classpath ./;./NicoCache_nl.jar extensions/*.java この例↑ではコマンドを連結( )して改行も連結(^)しているのでそのまま全文をコマンドプロンプトにコピペして実行するだけです。 このまま実行するとextensionsフォルダにある全ての拡張機能がコンパイルされます。 Windows with build.cmd あるいはextensionsフォルダにbuild.cmdがある場合は次のコマンドでもコンパイルできます。 cd (NicoCache_nlのextensionsフォルダ) ^ .\build YourExtension.java 例 cd C \NicoCache_nl\extensions ^ build *.java Un*x with javac cd (NicoCache_nlのディレクトリ) javac -classpath ./ ./NicoCache_nl.jar -encoding sjis \ extensions/YourExtension.java 例 cd /home/username/nicocache_nl \ javac -classpath ./ ./NicoCache_nl.jar -encoding sjis \ extensions/*.java この例↑でも同様にコマンドを連結( )して改行も連結(\)しているのでそのまま全文をbashシェル等にコピペして実行すればよいです。 (Linux)コマンドを連結して行う「;」「 」「 」「||」の違い https //jehupc.exblog.jp/15729095/ ホームディレクトリはcdからpwdで確認できます build.cmdのソースコード @echo off setlocal if "%~1"=="" goto USAGE "%JAVA_HOME%\bin\javac" -Xlint -Xlint -path -classpath ..;..\NicoCache_nl.jar %* goto EOF USAGE echo Usage build Extension1.java [Extension2.java ...] ExtensionsAutoBuild.batのソースコード 拡張機能コンパイルの自動化ツールです 任意のタイミングでファイルをダブルクリックするだけでOKです @echo off "%JAVA_HOME%\bin\javac" -Xlint -Xlint -path -classpath ..;%~dp0\NicoCache_nl.jar %~dp0\extensions\*.java Echo 「警告」は無視して問題ありません。気になるようであれば掲示板に報告してください Echo 「エラー」はコンパイル失敗です。解決してください pause 成功例 このように、classファイルが作成されます。(或いはclassファイルの更新日時が新しくなります。) 失敗例 エラーが出て、classファイルは作成されません。(若しくはclassファイルの更新日時は変わりません。) 「警告」は無視しても大抵は問題ありません。古いプログラミング形式で書かれている場合に警告が表示されるだけで実用上は問題ありません。 失敗したときは・・・ javacというコマンドが見つからないと出るとき →間違えてJDKではなくJREをインストールしたか、環境変数の設定が間違えています。インストールを参考に再設定して下さい。 名前 コメント
https://w.atwiki.jp/usapfrog/pages/39.html
代表的なMPIソフト、MPICH2での並列計算方法の構築手順など。 CentOS Linux 6.5, mpich2 1.2.1。 ネットワークで繋がった複数の独立マシン間を通信する場合について扱う。 主にmpdの場合について扱うけど、バージョンが新しいhydra使うタイプのがずっと楽なので、 yumが対応してない場合は自分でビルドしたほうが良いかも。 1.双子マシンを準備する 最低限、Linuxのディストリビューションは揃える。 (CentOSとFedraで試したら、MPIライブラリの関係で駄目だった。) ユーザー名も共通の物を準備しておく。 2.MPICH2のインストール 全マシンに。バージョンも揃えたほうがよい。 gcc, gfortranで良いなら、yumで mpich2とmpich2-develを取ってくる。 インテルやPGIのコンパイラを使いたければ、 環境変数CC, F77などを指定した後に自分でビルドする。 自分でビルドしたときは、/usr/local/mpich2以下のbinをPATHに、libをLD_LIBRARY_PATHに忘れずに追加する。 (参考) MPICH2 downloads PGIコンパイラによる MPICH2 ライブラリ環境の構築(Linux)プロセス管理として MPD を使用 Intel CompilerとMPICH2のインストールメモ 3./etc/hostsの整備 これも全マシンで共通のほうがよい。例えば以下のとおり。 # vi /etc/hosts 127.0.0.1 localhost 192.168.1.2 server 192.168.1.3 client1 192.168.1.4 client2 server1などがhostnameをと違う場合はhostnameも登録しておくこと。 hostnameの調べ方はそのまま。 $ hostname きちんとserver-clientマシン間でpingが通るかも確認する。 4.パスなしでssh通信の確立 RSA鍵認証でパスを打たなくてもseverからclientにsshできるようにしておく。 serverでssh-keygenをして、改行を連打(パスフレーズはいれない) [server] $ ssh-keygen 公開鍵をclient全員に送る [server] $ cd ~/.ssh $ scp id_rsa.pub client1 client側で公開鍵を登録する。パーミッションに注意する。 [client] $ cd $ cat id_rsa.pub .ssh/authorized_keys $ rm id_rsa.pub $ chmod 700 .ssh $ chmod 600 .ssh/authorized_keys (rootの場合)クライアント側でSELinuxを無効にする。 # setenforce 0 # vi /etc/sysconfig/selinux SELINUX=disabled に変更 server側でパス無しでsshが動作するか確認する。 [server] $ ssh client1 date (参考) ssh にてパスワードを使用しないでログインする方法 SSHのパスワード無しログイン設定(パスフレーズ無し版) 5..mpd.confの準備、mpdの動作チェック hydraを使う場合は飛ばしてよい。 全マシンでsercretwordは共通とする。スペースや改行、形式も厳格に同じで。 後述するmpdboot時のエラー(handle_mpd_output 407)(handle_mpd_output 420)は主に.mpd.conf関連で発生するらしい。 $ vi .mpd.conf secretword=hoge $ chmod 600 .mpd.conf mpdが正常に動作するか確認する。 $ mpd $ mpdallexit mpdallexitはmpdデーモンの終了コマンド。 (参考) MPICH2におけるmpdboot時の407エラー handle_mpd_output 420 6.シングルプロセスおよびサーバのみでの実行テスト 以下のようなプログラム。 [~/mpitest.c] #include unistd.h #include "mpi.h"int main(int argc, char **argv){ int len,ierr; int my_rank; char hname[32]; len = 32; MPI_Init( argc, argv ); MPI_Comm_rank(MPI_COMM_WORLD, my_rank); gethostname(hname,len); printf("My name is %s, Rank = %d \n",hname, my_rank); MPI_Finalize( ); return 0;} コンパイルして、単純実行する、単マシンでのmpiexecを試す。 $ mpicc mpitest.c $ ./a.out [server, mpd] $ mpd $ mpiexec -n 4 ./a.out $ mpdallexit [server, hydra] $ mpiexec -n 4 ./a.out 以降しばらくmpdの場合。hydraを使う場合は、9-hydraまで飛ばしてよい。 7.ファイアウォールを切るかポート開放する mpich2はssh22番以外のポートも経由して通信する。 支障がなければファイアウォールを切ってしまうのが早い。 CentOSは以下のコマンド。 [全マシン] # /etc/init.d/iptables stop (Fedra Coreは # systemctl stop iptables.service だった。) ファイアウォールを維持して、計算したい場合はMPICHの使用するポートを環境変数で指定する。 (1プロセス1ポート使うので、ある程度の範囲は確保すること。狭すぎるとmpiexecで実行時にエラーが出る。) [全マシン] $ vi .bashrc $ export MPICH_PORT_RANGE=57700 57800 その後、OS付属のファイアウォールツールや手動iptableなどで該当ポートを開放する。 CentOSなら、 # system-config-firewall のその他から、57700-57800 TCPを指定し、iptableの再起動をする。 # /etc/init.d/iptables restart (参考) mpich2 readme. - Argonne National Laboratory 8.mpdcheckでの相互通信の確認 [server] $ mpdcheck -s で出てくるホスト、ポートをクライアント側で下記入力する。 [client] $ mpdcheck -c [server] [port] 無事通信できると以下のメッセージが出力される。 [server] server successfully recvd msg from client hello_from_client_to_server [client] client successfully recvd ack from server ack_from_server_to_client 9.mpd.hostsの準備、mpdbootで手をつなぐ mpd.hostsに計算に使用するサーバ、使用可能プロセス数を指定する。 [server] $ vi mpd.hosts server 2 client1 2 client2 4 mpdbootでclientマシンと連結する。ファイル名がmpd.hostsなら-f以下は省略可能。-n以降はマシン数を指定する。 [server] $ mpdboot -n 3 -f mpd.hosts エラーが出たら、--debugオプションを付けると詳細な原因を出力してくれる。 $ mpdboot -n 3 --debug ファイアーウォールで引っかかると、(handle_mpd_output 407)エラーがでるので、上の設定を見直す。 /usr/bin/mpd.py以外にmpd.pyがあるためエラー(handle_mpd_output 420)となる場合は clientの該当箇所にシンボリックリンクを貼るなどして対応する。 無事起動し、クライアントを認識しているかはmpdtraceで確認できる。 $ mpdtrace 10.実行(mpiexec, mpd) mpdboot後、mpiexecで実行する。-nはプロセス数を指定する。 [server] $ mpiexec -n 6 ./a.out 結果。通常順番はバラバラである。 My name is server, Rank = 0 My name is server, Rank = 1 My name is client1, Rank = 2 My name is client1, Rank = 3 My name is client2, Rank = 4 My name is client2, Rank = 5 MPI系の実行エラーが出た場合は上記の使用ポート範囲が狭過ぎないか確認すること。 mpdを終了する。 [server] $ mpdallexit 9-hydra.ホストの準備・実行ファイルの転送 適当なファイルmpi.hostsに計算に使用するサーバ、使用可能プロセス数を指定する。 [server] $ vi mpi.hosts server 2 client1 2 client2 4 NFSなどでストレージを共有してない場合、各マシンの同階層にプログラムを転送する必要がある。 [server] $ scp a.out client1 $ scp a.out client2 mpi.hostsを使った全送信スクリプトなんかを組んでしまうと楽。 [bcast.sh (転送ファイル)] 現在ディレクトリを全クライアントノードに作成し、scpでファイルを転送する。 #!/bin/bashCWD=`pwd`FILE=$1NUL=/dev/null if [ $# -eq 0 ] ; then echo "no file specified." exit 1fi for h in `cat mpi.hosts`; do host=${h%% *} if [ $host != `hostname` ]; then echo $host ssh $host ls $CWD 1 $NUL 2 $NUL if [ $? -ne 0 ]; then ssh $host mkdir $CWD fi ls $FILE 1 $NUL 2 $NUL if [ $? -eq 0 ]; then scp $FILE $host $CWD fi fidone $1=引数, $#=引数の数, $?=前コマンドの戻り値, %%=最大マッチの後方置換,ワイルドカード * つき 10-hydra.実行(mpiexec,hydra) mpiexecで実行する。-nはプロセス数, -fはホストファイルを指定する。結果は上記と同じ。 [server] $ mpiexec -n 6 -f mpi.hosts ./a.out びっくりするほど楽です。hydra版はドキュメントの少なさがネックかな。 参考 MPICH2 UIKYO.NET MPICHインストール CentOS 6.2 に mpich2 をインストール PGIコンパイラによる MPICH2 ライブラリ環境の構築2(Linux)プロセス管理としてデフォルトの Hydra を使用
https://w.atwiki.jp/sm4wiki_mix/pages/51.html
LEVELも編集できる新バージョンができました! Lunar Magic/音楽の追加 このページについて OWやLEVELに新しい音楽を追加するツールの使い方を紹介します。 が、勝手に書いているので、おかしいところは修正して行ってください。 このページについて 事前準備 自分のPCでjavaが使えるかどうかの見分け方 初めてROMに音楽を入れる場合 前バージョンの場合は 注意! 音楽を入れる README補完 音色 音符 注意集 Mummlを使う サイズ軽量化Tips 全音符の連続を軽量化する修正 levelに音楽を入れたい 良くある質問 OnePointAdvice 事前準備 まず、こちらからツールをダウンロードしてください。(右クリで保存) addmusic.zip ちなみに、C ¥SMW¥というフォルダを作って入れて置くと、その後トラブルがおきにくいです。 もし、お使いのコンピューターにjavaが入っていない場合、 こちらからダウンロードし、インストールしてください。 ダウンロード 自分のPCでjavaが使えるかどうかの見分け方 test.batというテキストファイルを作り、その中に @echo off addmusic log.txt exit と書いて、ツールと同じフォルダに置き、実行して、生成されたlog.txtに [ヘルプ] ここに ヘルプが 表示される 予定です と書かれていれば、そのPCではこのツールがそのまま使えます。 NoClassDefFoundErrorなどと出る場合、環境変数CLASSPATHに.を付け足すと吉です。 どうしても起動しない場合は、環境変数CLASSPATHの値を全部消し、「.」のみにする。 [例] @echo off set CLASSPATH=. addmusic log.txt exit 初めてROMに音楽を入れる場合 前バージョンの場合は ROMの名前を、SMW.smcに変え(1MBに拡張した物。しかし、ルナマジで1度以上弄った物は使えない。Expandを使う。)を使用してください。 また、初期化.batというテキストファイルを作り、それに @echo off addmusic SMW.smc INIT pause exit と書いて、実行してください。 注意! 同じROMに、2度同じことをすると、ROMが完全に破壊されます! 2度実行しないように注意してください! 音楽を入れる 2. 音楽を入れる プログラムのあるフォルダと同じ場所に 11.txt 〜 18.txt(LEVELに挿入する場合は20.txt〜39.txt) を用意しましょう。 この 11 〜 39 の数値が Lunar Magic の音楽の設定におけるBGM番号となります。 これらのテキストファイルはしかるべき文法で書かれた楽譜データで、 このデータをSMW的なバイナリ形式に変換してファイルにぶちこむわけです。 コマンドプロンプトを呼び出し、「addmusic (ファイル名)」を打って実行して 不可解な文字列が大量に出てきて最後に「成功」とかそういうのが出たら成功 です。「失敗」とかそういうのが出たら何らかのエラーが出ています。 こちらのコマンドは何回行っても大丈夫です。 が、容量の超過には注意しましょう。予防措置がありませんのでね。 容量オーバーするとファイルが破壊されちゃいます(笑)。 入れることのできる音楽データの最大値は、 「変換後のデータの合計が 9600 バイトくらい」です。 はい、これそのままです。 よくわからない人は、 入力.batというテキストファイルを作り、それに @echo off addmusic SMW.smc log.txt と書き、ツールと同じ場所において実行してください。 その後、log.txtを開いて、 11.txt のサイズ 2008 track0 d7 bytes track1 f8 bytes track2 8a bytes track3 2f bytes track4 2f bytes track5 33 bytes track8 d bytes 合計 793 バイト 12.txt のサイズ 1342 track0 c1 bytes track1 77 bytes track2 dc bytes track8 55 bytes 合計 654 バイト 13.txt のサイズ 3478 track0 1ad bytes track1 a1 bytes track2 19a bytes track3 17c bytes track4 13b bytes track5 46 bytes track8 ab bytes 合計 1970 バイト 14.txt のサイズ 1305 track0 a5 bytes track1 105 bytes track2 c2 bytes track8 d8 bytes 合計 889 バイト 15.txt のサイズ 2417 track0 103 bytes track1 8e bytes track2 8d bytes track3 d4 bytes track4 d4 bytes track8 4e bytes 合計 1095 バイト 16.txt のサイズ 816 track0 55 bytes track1 52 bytes track2 51 bytes track3 29 bytes track8 28 bytes 合計 365 バイト 17.txt のサイズ 1080 track0 9f bytes track1 72 bytes track2 84 bytes track8 29 bytes 合計 483 バイト 18.txt のサイズ 1301 track0 9d bytes track1 98 bytes track2 7c bytes track3 24 bytes track4 39 bytes track8 3b bytes 合計 620 バイト ファイルへの書きこみに成功しました と書かれていればOKです README補完 音色 番号音程コメント 0+12ローパス気味の方形波(スクエアリード)。Hollow 10ローパス気味のノコギリ波。木管楽器、ストリングスなど 2+29? (+5)鉄琴、オルゴール系。音程がずれる 3+12 (0)木琴 40パルスのようなノコギリ波?(Claviや1/4矩形波を連想)。癖の強い音。金管楽器、弦楽器など 50ピチカートストリングス? 606/16矩形波のような音。木管楽器、弦楽器など 70スチールドラム 80フラットレスベースのような音 9-5ホンキートンクピアノ。減退音 10+18 (+6)打楽器 110@1の音色のアタックを強めた音 12-5?でっていうパーカッション 130エレピ(電気ピアノ)。ゲームオーバーの音 140スラップベース。他の使い方もあるかも 15+8オーケストラヒット 160@13を減退音にした音 170ディストーションギター。5度の倍音が強い 180@1に若干アタックの癖をつけたもの SMWGAKI.lzh 音色はわりと単純な波形音に近いものが多いです。こういった音色は、ビブラートや音の立ち上がり、奏法などに気を使うことで、いろいろな役割を持たせられます。 音符 ソ ,ラ ,シ ,ド ,レ ,ミ ,ファ はそれぞれ c+,d+,e+,f+,g+,a+,b …多分 修正されてcがドになるようになりました。ただし、仕様として一部の楽器は音がいくらかずれています。 注意集 くれぐれもINIT二重がけ・txtファイルのサイズ超過に注意。 曲は#0#1#2...のうち、もっとも短いやつが終わった時に全体がループする。あらかじめチャンネルをたくさん用意しておくと、#0から書き始めた時に試しにかけると鳴らないってことが起こる。 新型スクロール土管をEasyPipeで導入したROMに音楽を追加するとROMが物故割れるようです。どうしても併用したいならPipesで導入してください。 Mummlを使う #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (Mumml)汎用のMML編集補助ソフトで、指定のMMLが更新されたのを検知し、即座に コンパイルからプレイヤー起動までしてしまうという代物です。 smw-addmusic-mumml.zip AddMusic用のMumml設定ファイルです。詳細は付属ドキュメントをご覧ください。 サイズ軽量化Tips 同じ長さの音符が連続するとき、音長表現は最初の音符にのみ付属 c4d8e4f8と書くよりもc8^8d8e8^8f8と書いた方が短い ただしqの値が変更されるときは、音符は必ず音長を伴う 音長が127を超えたとき、余った長さは自動的に2分音符のタイで表現される(AddMusic仕様) [r1]8 = [r2^2]8よりも[r2]16の方が音符が少なくなるのでサイズが縮む 自前で2分音符を並べた方が全音符を書くよりサイズが縮む(修正可、後述) テンポを半分にすると、音符の長さ表現も半分で済む ただしテンポを下げると、音を滑らかにつなぐことがやや困難になる 長さの異なる音符が絡むセルフディレイでは、vの方がqよりサイズが大きくなる vとqのディレイでは方法によって鳴りが異なるので、適宜取捨選択が必要 エコーの使い方次第でディレイとサイズ軽減の両方を選べる場合もある テンポアップ時でも同様にエコーがかかることに留意すべき それ以前に、重要でないディレイは思い切って削ってしまう方が得策 ループには多少の容量が必要、MMLの縮小がデータの縮小につながるとは限らない 譜面とログをよく見て、サイズの縮むループの書き方を模索すべき クオンタイズの短い音符を有効活用する(例 q7F c8r8d8r8e8r8 → q3F c4d4e4) 全音符の連続を軽量化する修正 現在のAddMusicでは仕様上、c1c1と書くよりc2^2c2^2と書く方が軽くなってしまいます。 以下、これらを同等にするための修正方法を示します。ソースコード「Henkan.java」中の //音長が長すぎるとき input(0x60); これを次のようにします。 //音長が長すぎるとき if(last_long != 0x60 || update_q[tr]) input(0x60); 当然、修正内容を反映するにはjavacによるコンパイルが必要です。 これは非公式的な修正であり、もしかしたら不具合があるかもしれません(たぶん大丈夫だと思いますが)。 levelに音楽を入れたい ツールが更新されて、ツールで挿入できるようになりました! Lunar Magic/音楽の追加 以下過去の情報 もったいない情報だったのでスレからコピペ 簡易説明か… ?まずバイナリエディタ・LunarAddress・電卓へのショートカットをかためて置いておく ?空っぽのROMにいつもの方法でOW音楽を挿入 ?そのROMをプレイしOW画面でSPCを吐かせる(SPCA) ?Levelに挿入したい方のROMの方をプレイし、Level画面でSPCを吐かせる(SPCB) ?メモ用のテキストファイルを用意する ?バイナリでSPCAを開く SPCAの解析編 ?SPCAもSPCBも、最初からヘッダ100バイトを削除しておく。 これでSPCはSPCじゃなくて純粋なARAMのデータとなった。 ?アドレスA-1360と1361を見る。そこがbgm1のあるアドレスだ。 ?1362.3がbgm2、1364.5がbgm3。さっき何番にOWを挿入したか? bgmNなら1358+2Nから2バイトがデータのありかだ。 ただしバイナリでは総じて位が反対に表記してある。 たとえば「1234」ならバイナリには「34 12」と書いてある。 bgmNのデータのありかをメモに書いておこう。 そしてそこへジャンプ。自分の場合は29A5だった。 ?自分の場合そこには(29A5)こんなデータが書いてあった。 7A2D 7A2D FF00 A529 (一小節分のデータ2D7Aを2回やってから29A5に戻る) 当然Wikiのbgm.txtも参照してくれ。 ここの内容もメモに書いておこう。 そしてこれの表す意味を自分なりに説明して添えておこう。 ?さっき出てきた1小節分のデータにジャンプ。自分の場合は2D7A そこには各chのデータのありかがある。 CD29 232A AD2A B62A 252C 0000 0000 0000 こんな感じ。 ?あ、それもメモにそのまま書いておく。 (29CD 2A23 2AAD 2AB6 2C25)とひっくり返したものも 隣に書いておくと後で便利。 多分OWのBGM入れるツールの仕様で、チャンネルデータは固めて置いてあると思う。 それの示す先へジャンプ ?ch0データの最初と、使用している最後のチャンネルのデータの最後にマーキングしておくと便利かも。各chのデータは00が終了の合図。 ?多分チャンネル毎のデータの先にもまだデータがあると思う。 そこはおそらくループの内容。 ch毎のデータの中にE9abcdefてのがあちこちにあると思う。 これは確かアドレスcdabの処理をef回繰り返すってことで そのcdabがチャンネル毎のデータの次にあるやつにあたる。 だからこの部分も移植しなければならない。 以上がSPCAの内容である。 これをそのままSPCBの空いている場所に移せばいいんだが、 途中でアドレス指定してジャンプってのが幾度となく出てきたと思う。これを全部移植先に合うような数字に変えなければならないのだ。特にE9......は大量にあるので厄介。 260 今言っているのは、OW用BGM挿入ツールで入れてから Levelに無理やり移植するというめちゃくちゃ遠回りの話。 どうせプログラムを作るなら直接入れれるやつがいいけどなあ。 あと 259の?の2行目に訂正 「1358+2N」でなくて「135E+2N」、むしろ「1360+2N-2」 〜SPCBに移植編〜 ここからはさっき書いたメモを見ながら作業をする。 ?SPCBを見てみよう。アドレス5FDCから空白があるので ここに曲をもってこよう。LevelのBGM20(未使用)を望みの曲にしよう。 levelも同じで1360+2*20-2=139EがBGM20のありかを示す。 そこをDC 5Fに変えてしまおう。 ?5FDCのところに解析編?の内容を移す。 ただしここからは一般的な説明はとても難しいから 自分の場合どうやったかを言って行く。 自分はSPCAでは アドレス29A5 7A2D 7A2D FF00 A529(2D7Aを2回→29A5に戻る) だった。 これをSPCBの5FDCに移すなら例えばこうすればよい。 アドレス5FDC E45F E45F FF00 DC5F(5FE4を2回→5FDCに戻る) そして5FE4から移植編?の内容を移すことになる。 ?5FE4には「ch毎のデータのありか」を移す。 SPCAでは自分の場合 CD29 232A AD2A B62A 252C 0000 0000 0000であった。 まずこれをSPCBにコピペして置こう。…※ このままじゃだめ。 そしてコレの次(5FF4)からは解析編??のデータを全部コピペしてしまおう。 そのあと再び※を見る。 SPCBでは29CDでなくて、コレ↑の次のアドレス5FF4にとぶようにしたい。 29CF→5FF4だから+3627である。 ならば他のも(0000を除く)全部+3627すれば、 その先の全チャンネルのデータのありかに対応してくれる。 ?最後に、解析編??のデータをさっきコピペしたが、 このままではいけないのはループ処理E9....(アドレス)である。 ....を全て+3627。めんどくさいけどこれでOK じゃあ昨日の続きを書こうか。 昨日の段階で、SPCBは完成。ここで見落としがないか確かめよう。 E9の後は大体同じくらいの数字が来るはずだ。 この全てに+3000くらいをしてるわけだから、 E9で検索をかけてそのあとにひとつだけ他のより3000程小さい数字が出て来ていないか確かめよう。OKなら次へ。計算機大活躍。 〜SPCBへの変更をROMに適用編〜 ROMの改造では、PCアドレスとSNESアドレス(?)が違うということに注意しなければなら ない。 PCアドレスとは、ROMをPCのバイナリエディタで開いたときのアドレス。 SNESアドレスとは、ROMで「ここへ飛べ」と指定するときに使うアドレス。 LunarAddressで互いに変換できる。 まずどうゆう仕組みでARAMはエミュに送られてるのか説明。 ここで改造したいほうのROMをバイナリで開き348を見てみよう。 A9 D6 8D0000 A9 AE 8D0100 A9 0E 8D0200 とある。 それぞれ2つめに注目。 これは「SNESアドレス0EAED6に送るARAMのデータがある」と宣言している。 さてここでLunarAddressの登場。 SNESにとって0EAED6は、PC上では0730D6だそうだ。 バイナリ0730D6を見てみると FD41 6013 1816 AA18....とある。 3つ目以降に注目。これは正しくSPCBのアドレス1360にあったデータだ。 2つ目は、「次の所をARAMの1360として送るよ」ということ。 1つ目は、送るデータのサイズをあらわしている。 FD41 6013 dataが延々と続く(この部分がサイズFD41) 0000 0005 ←転送終了の合図 こういう仕組みだ。 SPCには8000を境に前半と後半的なものがあるようで、 今話してるのは前半の送り方ね。 SPCBの改造箇所は前半になっているはずだから、 ROMでも改造するのは前半だけでいいと思う。 さて、ROMのdata部分を昨日作ったSPCBの前半のそれにすり替えて FD41のところを調整すればいいってことになるが、 残念ながら元のよりデータが大きくなってるので入らない。 だから別の空いているところにデータを入れることになる。 どんな曲を入れたかによって変わるけど、 改造前は5FDCまでしかなかった前半が6000台くらいまで占めるようになったと思う。 ?1360から改造箇所のラスト(ここでは6666としようか)までをコピー ?ROMの、どこでもいいけど分かりやすくするため 1F1360から1F6666までにペーストしようか。 ?1F135Eに6013と書く ?1F135Cに、ペーストしたデータのサイズを書く。 6666-1360+1でいいかな?ひっくり返して書く。 ?ペーストしたデータの後を00000005とする。 ?最後に、LevelのARAM転送はPC0730D6にデータがある! となっていたところをPC1F135Cにすりかえる。 PC1F135C=SNES3E915Cだから、PC348を見て A9 5C 8D0000 A9 91 8D0100 A9 3E 8D0200 と変えてセーブしよう。 ミッションコンプリート! バックアップは当然取って作業しましょう。 良くある質問 Q. 質問 A. 答え Q. Javaをインストールしても使えません A. 環境変数の設定はしましたか? Q. log.txtに書いてある事が違うんですが、それでもいいんですか? A. 最後の一行がファイルへの書きこみに失敗しましたになっていなければ大丈夫だと思います。 Q. log.txtに成功と書かれていたのですが、音楽が全く消えてしまいました・・・ A. 初期化してください。 Q. パッチしようとしたら addmusic は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されてません とでるんですが・・・ A. Javaをインストールしてください Q. 1MBを超えたROMで音楽導入したらlog.txtには成功って書かれてたのにエミュでROM起動したらグラフィックがおかしくなってしまいます。 A. グラフィックを挿入し直しましょう Q. しかるべき文法で書かれた楽譜データとは? A. MMLです Q. addmusicとかテスト.batするとヘルプ(ry がでるんですが 1秒ほどで消えてしまいます どうすれば・・・ A. 問題ありません。ちなみに、addmusicの横に log.txtとか書いておけば、結果がテキストファイルに出力されて見やすくなります。 Q. MIDIファイルをMMLに変換するにはどうすればいいのでしょう? A. tinymmを使用してください。 Q. SPCをMMLにするには? A. SPC2MIDI→Tinymm ただし変換したときにテンポがおかしくなることがあります。 Q. Javacのコンパイルってどうやるの? A. Javaの開発キットをDLしてください Q. 初期化.batを実行したらフリーズする A. 1MB以上の改造済みのROMに実行するとROMが壊れます。また、音楽番号を挿入していないものにするとサウンドが鳴らなくなったり、フリーズしたりします。 Q. Lunar Magicで弄ったあとのROMを使いたい。バグなしで? A. 無理。どうしてもという場合は自分でいったん他のROMに入れてから目的のものに入れなおせ。 Q. Pipesって(スクロール土管)原始的な方法のやつ? A. Wiki嫁 Q. javaダウンロードしてあって、「addmusic(ファイル名(本当は入力))LEVEL」と入力すると、 addmusic は内部コマンドまたは外部コマンド、操作〜認識されてませんとでるのですが? A. "addmusic"を"addmusic.class"としてみるといいかも Q. 環境変数とは? A. ググレカス OnePointAdvice 質問する前にマニュアル、wikiをよく読みましょう。 (Lunar Magic/音楽の追加やLunar Magic/音楽の書き方等を参照) コマンドプロンプト段階でエラーが出るときは、ダウンロードしなおしたり、バッチファイルを作り直してみたりしましょう。 LEVELも編集できる新バージョンができました! Lunar Magic/音楽の追加
https://w.atwiki.jp/a_kurosawa/pages/28.html
◆その他 ◆その他フォントの仕様が一目でわかるらしい URLに全角文字列をそのまま渡すと文字化けする Windowsの32bit版、64bit版、i586、x86、x64 入力チェック バッチでファイル読み込みして置換など SQL変換正規表現 バッチファイル注意点 プログラマ?SE?に必要なスキルの質問 フォントの仕様が一目でわかるらしい 一目じゃないけど、一通り見るとわかるし、わかりやすい! 新人くん、これわかる!?書体の要素が手っ取り早くわかる例え画像 URLに全角文字列をそのまま渡すと文字化けする URLには文字コード問わず渡せるが、 そのままではなくパーセントエンコーディングで渡さなければ 受け取った時にはとんでもない文字列になっている。 参考 Windowsの32bit版、64bit版、i586、x86、x64 ◆説明 Windowsには32bit版と64bit版の2種類があります。 それぞれ32bitと一度に処理できるOSと 64bitを一度に処理できるOSという意味です。 参考 ◆確認方法 OSによって違うようです。 Windows Vista ~ Windows 8まで コントロールパネル→システムとなんちゃら→システム ※Vistaでは「システムとメンテナンス」、7,8では「システムとセキュリティ」 ※マイコンピュータ右クリック→プロパティでも恐らく出せます。 「システムの種類」という項目に「32ビットオペレーティング システム」 とか「64ビットオペレーティングシステム」とか書かれています。 Windows XP XPも手順は同じですが、見た目がぜんぜん違います。 皆さんも一度は見たことあると思いますが、 OSを確認したり環境変数設定したりするあのプロパティです。 コントロールパネル→システム ※マイコンピュータ右クリック→プロパティでも出せます。 「全般」タブの「システム」という項目に OSと一緒に記載されています。 ただし、32bitの場合は何も書かれていません! 32bit版 Microsoft Windows XP Home Edition Version 2002 Service Pack 3 64bit版 Microsoft Windows XP Professional x64 Version 2002 Service Pack 3 参考 入力チェック nullチェック スペースチェック 数値チェック 半角チェック 記号チェック 文字数チェック メールタイプチェック バッチでファイル読み込みして置換など @echo off rem ------------------------------------------- rem 同ディレクトリ内にある*.sqlファイルを rem CSE用に変換して、A5toCSEフォルダに格納する rem *.sqlはA5の@で始まるパラメータが rem 記載されているものとして変換する rem ------------------------------------------- rem 置換する文字をセット set search=@ rem 置換後の文字をセット set replace= rem フォルダ名をセット set folder=A5toCSE rem 変数初期化 set after= setlocal enabledelayedexpansion rem フォルダがない場合新規作成する if not exist .\%folder% md %folder% rem 全てのsqlファイルをループでまわす for %%A in (*.sql) do ( rem 空にする type nul .\%folder%\%%A rem 1行ずつループする for /f "tokens=*" %%i in (%%A) do ( set str=%%i if "!str!" == "" goto end rem @パラメータを パラメータに変換 set after=!str %search%=%replace%! rem ファイルに追記 echo !after! .\%folder%\%%A ) ) end endlocal SQL変換正規表現 SQLを実行するツールによって、 埋め込みパラメータの書き方が違います。 ■A5、SQLServer⇒@param ■CSE⇒ param ■Seasar2⇒/*param*/ ■O/Rマッピング⇒#param# のように同じSQLでも埋め込みパラメータが入ってるとうまく動きません。 でもA5やSCEで実行して確認したSQLを Seasar2のリソースに持っていったり、 O/Rマッピングのxmlの中に埋め込んだりしますよね。 その為の今現在の苦肉の策として テキストエディタで置換するという方法を取っています。 毎回入力するのが面倒くさいので正規表現を書いておきます。 ■正規表現 A5、SQLServer @([a-zA-Z0-9_]) CSE ([a-zA-Z0-9_]) Seasar2 /*([a-zA-Z0-9_])*/ O/Rマッピング #([a-zA-Z0-9_])# ■置換値 A5、SQLServer @\1 CSE \1 Seasar2 /*\1*/ O/Rマッピング #\1# ※これらの置換値はサクラエディタ用です。 ※秀丸だと\1のところが\0になります。 バッチファイル注意点 参考 プログラマ?SE?に必要なスキルの質問 参考
https://w.atwiki.jp/wiki6_takt/pages/8.html
DBのカタログ #catalog tcpip node HOST_NAME remote 192.168.0.159 server 50000; #catalog db LOCALDB at node NODE_NAME; #connect to LOCALDB user USER using PASS; EXPORT/INPORT export #cd EXPORT_FILE_PATH #db2move LOCALDB export -u USER -p PASS import #db2 -tvf INPORT_FILE.DDL #db2move LOCALDB import -u USER -p PASS DB2の接続を強制切断 #db2 force application ( 41408, 55458 ) application-handle DBバックアップ/リストア バックアップ #db2 stop (force) #db2 start dbm #db2 backup db LOCALDB to FILE_PATH リストア #db2 stop (force) #db2 start dbm #db2 restore db LOCALDB from FILE_PATH Cygwin環境で、DB2 9のコマンドを使う方法 Windows上のCygwin環境から直接DB2コマンドを実行してもうまく実行できません。それはDB2のコマンドを実行するために必要な環境変数の、DB2CLPとDB2PATHが設定されていないからです。 DB2PATHの方は、DB2を導入したディレクトリなので、SQLLIB¥の在るディレクトリを指定すれば良いのですが、DB2CLPの方はクライアントを区別するための値が入る変数で、何を指定すれば良いか分からずにいました。 「/.bashrc」に以下の設定を記述 #export DB2CLP=**$$** #export DB2PATH=C ¥¥SQLLIB (この方法は、V9でしかちゃんと動かないようです) DB2の文字コード設定 DB2の文字コードの扱いについて基本的なところを列挙してみます。 まず、DB2はデータベース作成時に"USING CODESET"で文字コードを指定します。表毎には変更できません(例外としてUTF-8以外で作成したデータベースの中にUnicodeの表を作成できる機能があります)。データは必ずそのコードページに変換されて格納されます。つまりSJISを指定して作成されたデータベースにはSJISのコードページで文字が格納されます。 例) #CREATE DATABASE test USING CODESET IBM-943 TERRITORY JP COLLATE USING SYSTEM クライアント環境のコードページがデータベースのコードページと異なる場合はDB2クライアントによってコードページ変換が行われます。そのためあまりクライアントはデータベースのコードページを意識する必要はありません。(もちろん変換できない文字などがある場合に問題が出るのですが) クライアント環境のコードページはDB2クライアントによって自動判別されますが、基本的にOSの設定を継承します(たとえば最近のLinuxだとja_JP.UTF-8であるケースが多い)。それを変更したい場合はレジストリ変数のDB2CODEPAGEで上書きできます。 例) #db2set DB2CODEPAGE=IBM-943 クライアントがJavaの場合は(JDBCドライバを使用している場合は)クライアントOSに関係なく、クライアントの文字コードはUTF-8と認識されます。 もし、クライアントのコードページがデータベースのコードページを表現できない場合(例:日本語EUCで作成したデータベースに、英語OS環境からアクセスした場合)、接続ができません。 例外として、UTF-8(Unicode)で作成したデータベースは、クライアントがどんなコードページでも接続できる事が保障されます。 以上を踏まえて、データベース作成時のコードページ選択基準をまとめると、 基本的に文字コード変換は起こらないのが一番なので、データベースを作成時に文字コードをクライアントのコードページに合わせるのが無難です。 Javaから利用するなら、UTF-8がお勧めです。 クライアント環境が特定できない、もしくは今後どうなるか分からない場合にはとりあえずUTF-8というのが汎用的に使えるので無難な選択です。ただし、日本語1文字あたり3バイト消費するので列サイズが問題になるケースでは別の文字コードを考慮すべきです。 説明を省略しているCOLLATEは文字のソート順の規定なのですが、UTF-8の場合はUCA400_NOが、それ以外ではSYSTEMがお勧めです。 UTF-8での作成例 #CREATE DATABASE mydb AUTOMATIC STORAGE YES #ON /mydbpath/ #USING CODESET UTF-8 TERRITORY JP #COLLATE USING UCA400_NO #PAGESIZE 4096 MS-SJIS(=IBM-943)での作成例 #CREATE DATABASE TEST AUTOMATIC STORAGE YES #ON /mydbpath/ #USING CODESET IBM-943 TERRITORY JP #COLLATE USING SYSTEM #PAGESIZE 4096 あと、このあたりの情報も参考になりそうです。 ※8/8追記: この資料 (DM-03-037)も非常に参考になります。 実行回数が多いSQLをカタログキャッシュから読み出す SYSIBMADM.TOP_DYNAMIC_SQL表(VIEW)は、V9から新しく追加されたもので、その名前の通り、パッケージキャッシュ上のデータから、実行したSQLの情報を表示させるためのものです。概念は簡単ですが非常に使い勝手が良いVIEWですね。たとえばNUM_EXECUTIONS列にはSQLを実行した回数が入っているので、 #SELECT SUBSTR(STMT_TEXT,1,50), NUM_EXECUTIONS #FROM SYSIBMADM.TOP_DYNAMIC_SQL #ORDER BY NUM_EXECUTIONS DESC とするだけで、実行回数の多いSQLが順に表示できます。
https://w.atwiki.jp/armoredcoreforever/pages/428.html
ACV/1.04アップデート環境変化まとめ編 ACV/1.04アップデート環境変化まとめ編公式 今北産業 重要な変更点(仕様編) 重要な変更点(フレーム・内装編) 重要な変更点(武器編) 今レギュが各脚部へ及ぼした影響 今レギュが武器へ及ぼした影響 コメント 公式 http //www.armoredcore.net/players/acv/2012/06/11/2902 (再調整)http //www.armoredcore.net/players/acv/2012/06/19/3241 今北産業 リロが(ほとんど)腕の安定だけに依存、ぷつおがついに死亡 オックス弱体化+防御強化で重量機が躍進、ガチタンも要塞重四もあるんだよ スキャンモードのEN回復量が大きく変化したから気をつけろ 重要な変更点(仕様編) HEADとLEGSがArm Unitのリロード時間に影響する度合いの調整 今まで、頭部と脚部(主に後者)の安定性能が武器のリロードに多大な影響を及ぼしてきたが、この影響が非常に小さくなり、連射力がほぼ腕部の安定と武器自体のリロードに依存するようになった。 この変更によって、今まで圧倒的な連射力を誇っていたKT-2N3/PUTUOが並レベルの連射力になったというか、安定の低い脚部もみんな実用レベルの連射力を手に入れたというか。リロの速さが売りだった逆関節は冬の時代へ。 スキャンモードのENオフ機能が正しく機能しない現象の修正 スキャンモードで電源が落ちる部位が「頭、ブースター、リコン、脚」→「FCS、腕、各腕武器 肩武器」に変更、というか修正。 高負荷な武器やFCSを積んでいた人には朗報だが、高負荷なブースターを使っていた人にはかなりキツイ変更である。軽量ジェネレーターに高出力ブースター…という組み合わせでは、スキャンモードでもなかなかENが回復しなくなったため、ジェネレーターの選択がさらに悩ましくなった。 過去レギュとはスキャンモード時の回復量が明らかに違うので、復帰組はまずここをチェックすること。 重要な変更点(フレーム・内装編) このアプデで発生・流行した新しい有用アセンは「要塞重四」と「全防タンク(ガチタン、MBT メインバトルタンク?)」である。 前者は威特タンジー・威特ストレコ・威特アラチデ×片肩イザナミを防ぎ、積載に気をつければオックスアイの衝撃も通らないという、まさに「空中要塞」。ネタ扱いだった重四が大躍進。HD-21 SEALEYE、JOTUN CR113-2、KT-1S/AMUR、VISO LG664-2。 欠点はVISOが抱える鈍足・低旋回とTE確保による連射力の低さ。高出力ブースタやブーストドライブ旋回&腕部をUAM-23 ANIMASにすることである程度カバーできる。(肝心のTE防御は下がってしまうが...) また、要塞といえどもTE1100台なので(アンプ)パルスガン・プラズマ・レザライその他諸々はあっさり貫通するので立ち回りには気をつけよう。 後者は、タンジーストレコを弾きつつTE3766。まさにガチガチである。ちょっぴり衝撃に弱いのは内緒。オックスとショットの衝撃が再調整されるまではスナかキャノンくらいしか通らない状態であり(MBT)、再調整後もやはり衝撃武器以外には無類の強さを誇る。ROLAND HD41、KT-3O2、UAM-10 SEVERN、ULG-93/A。 タンク全般に言える事だが、孤立してしまうとあっさり落ちてしまう。仲間の位置は良く確認しておこう。 その他は、パーツ単体で見ても、アセン傾向で見ても、そんなに大きな変更は無い。 しかし、ほんの少しの差でも防御数値が違うと明暗が分かれることもあるのがACVなので、復帰組はよくよく「初心者向けアセン目安数値一覧」をチェックしつつアセンを確認すること。 ベオウルフや盾コアやCE腕などの定番品が微妙に弱体化されたり、使われないパーツが微妙に強化されたり、順当だがインパクト不足の調整が多い模様。主流と傍流の差は縮まったが逆転はしない程度か。 HIGH ACCEL TYPEのブースターが地味に強化 全体的に強化され、かなり使える性能に。もうグラブ専用とか、壁が無いとトロいとか、言わせない。 ただし、前述のスキャンモードの仕様変更があったため、シナツの消費の大きさは今まで以上に痛い。UBT-25/Hは高性能かつ低消費で非常にバランスが良い。 重要な変更点(武器編) OXEYE HG 25の弱体化 衝撃が低下して威力特化育成しても最大1553。対反動が1242あれば硬直しなくなり、逆関節や四脚は言うに及ばず、タンクや重二でもほどほどの努力で硬直を防げるようになった。 防御低下目的に持つとしても、弾数が20発になり気軽にばらまけなくなり、ぷつおだけでなく重四脚や安定タンクにも無効化されてしまうため、以前のような万能さは無い。 これによって、今まで「ぷつおっくす」の餌でしかなかった重量機が一気に息を吹き返した模様。中二などの低安定機も以前よりはストレスなく機動戦を楽しめるように。 RECONジャマー使用機体が、オペレーターからは見えるように 今まではオペ画面からすら消え去っていたリコジャマが、オペ画面で確認できるようになった。 オペは普通にスポットすることも可能。丸見えですよ、あなた。 レーザーライフルでフルチャージしないと二次ロックしていなかった現象の修正 やっとノーチャージ・半チャージでも二次ロックできるようになったよ!やったね! 弾速は今まで通り遅いから、結局フルチャージしないと近距離以外まともに当たらないような気もするけど、やったね! サブコンピュータのスキャン速度上昇が機能しない現象の修正 主任頭やベオウルフなどの低速スキャン頭部がさらに使いやすくなった。 ちなみに、この変更に合わせてベオウルフのスキャンはさらに落とされ、まともにスキャンする気があるならサブコン必須な性能に。 今レギュが各脚部へ及ぼした影響 軽二 ちょっと↑。 実弾武器をまともに連射できるようになったため、ちょっとはましな存在に。結局パルガンやブレやパイルなど安定の関係ない武器を積むことが多いので、あまり意味は無いかもしれないが。 スキャンモード時のEN回復量の変化には特に注意が必要。 中二 ↑。 実弾武器の連射力が上がり、より万能な存在に。 ULG-21の防御力が低下し、それでも相変わらずの強脚部ではあるが、少々アセンは難しくなった。他の脚部もそこそこ使えるものがあるので、これを機に乗り換えも考えてみては。 重二 ↑↓。大きく上がって、再調整でおおむね元に戻った。 1.04で非常に硬くなり、新たな主役になるかと思われたが、再調整で急遽柔らかくされる。やりすぎたんだ、お前はな! 弱点自体はそんなに変わらないが、天敵のぷつおっくすがお亡くなりになったので、「即死しにくい」という特長がさらに強まった様子。 軽逆 ↓。 連射力を奪われ、かなりの弱体化である。接敵してもショットやオックスでハメられなくなったため、的確なヒット アウェイが必要な非常にテクニカルな脚部に。 重逆 ↓↓↓。大没落。 ついに連射力を取り上げられ、連射力でごまかせていた様々な弱点が露呈し、ぷつおはついに強脚部の座から転落。テコ入れが入ったモレナやアイフェルも中途半端なため、ぷつお以外の脚も相変わらず使いにくい。 とは言え、TE以外はそこそこ耐えられる装甲と対反動の高さ、そしてジャンプ力を生かした数字以上に鋭さのある機動で、未だに愛用している人も存在する。 四脚 ↑↑↑。大躍進。 リロの仕様変更とパーツ調整(防御↑)によって、一気に重逆のポジションを奪い取った。もう「四脚ちゃん」なんて言わせない。様をつけろゴラァ! 要塞重四も非常に増えたし、ぷつおよりちょっと速くて硬くて大幅に積載の高い中四ことオリティガーラも人気。軽四は…。 タンク ↑。 全防タンクという選択肢が増えたり、全体的にちょと硬くなるなど、装甲面が地味に強化。 攻撃面では、火力担当のぷつおがいなくなったりオックスの衝撃が落ちたことによって、火力や衝撃の非常に高い構え武器が使いこなせるタンクの存在感は以前より大きくなっている。 今レギュが武器へ及ぼした影響 手持ちKE武器 1.04当初~再調整が入るまでは、スナライくらいしか安定して使えるものが無かった。 再調整で衝撃↑、重二のKE防御↓になったため、タンジー、オックスランポ、ショットなどの定番武器は復権(1.03よりは若干弱体か)。スナライが「唯一貫通するKE武器」の座を奪われ、チーム戦では微妙なポジションに帰還。後ろから砂だけ撃っててもDPSが低すぎて、チームメンバーに迷惑がられる。 再調整の結果、USG-11/Hの衝撃とオックスアイの衝撃が同レベルになり、たとえ衝撃が通用しなくてもダメージをとれるUSG-11/Hが大人気となる。主に戦闘距離などでオックスと使い分け。特に至近距離での運用が必要なパルスガン、プラズマガンとショットガンの組み合わせが増えていて、かつては軽量機専用だったこれらの武器を中量機、重量機のハンガーに積むアセンも一般的となった。 手持ちCE武器 大きな変化は無し。 相変わらずバトライは様々な種類が住み分けられており、ヒートハウザーは目覚めない。 手持ちTE武器 重逆が減り、TE対策中二や重二やタンクや要塞四脚が主流アセンになっているので、素パルマシが以前に比べたら全然通らない。アンプ一個つけてもなかなか通らない。 Sアンプパルマシ弾きの要塞重四を如何に貫通するかが課題となる。パルマシより攻撃力の高いパルスガンやプラズマガンをよく見かけるようになった。Wアンプパルマシ職人も健在だが、EN回復の変化によって、扱うにはさらに技術が必要になった。 レザライは…カラサワ以外は相変わらずDPSが低くて使いにくい。TE対策機が多くて、半端な威力では貫通しにくい環境なのもマイナス要素。ただ、前レギュよりは使えるようになっているので、実験的に使っている人を見ることもある。 オックスの衝撃低下によって、「krsw+ランポ」という新しい組み合わせに注目が集まったが、独特の扱いにくさがありテンプレには至らず。 近接武器 ブレのEN消費が減ったりしたが、特に変わらず。 重量機が増えているので価値は相対的に少々高くなったが、当てられなければ意味が無い。 近接オンリー、ダメ、絶対。フリーの近接オンリー部屋にこもれ。 構え武器 超連射ぷつおが消滅したため、タンクと構え武器の価値は非常に高まった。他と段違いに圧倒的な火力と制圧力を発揮。 オックスの衝撃が下がったことで油断している重量機を、キャノンなどでハメ殺す戦術も流行中。 対タンク用にスナキャやハウザーを積むタンクもときどき現れる。ただし、当てられなければ(ry 肩武器 特に変化なし。一部の産廃を除けば多様なアセンが使われている。 コメント 近接こもれっていうのは言い過ぎじゃないかな -- (名無しさん) 2012-09-17 21 13 05 生半可な腕で近接しても旨いタンク使いには蹴られたりするからなぁ…領地戦(平地)は現状、ほぼ撃ち合いで無敵のタンクをいかにフォロー/始末するかが基礎戦術になってる気ガス -- (名無しさん) 2012-09-17 22 07 28 当てる事を重視するならオックスなりショットと合わせて使えばいいし、近接オンリーである必要性って何? -- (名無しさん) 2012-09-18 10 14 23 ドミナント以外は皆無だな タンク駆除は突き詰めると同族のキャノタンかヒトロケ持ちが最適になる<近接武器イラネ -- (名無しさん) 2012-09-18 19 05 48 ヒートハウザー帰ってきてくれ・・・ -- (名無しさん) 2012-09-19 08 51 16 別に軽二と中二は連射かわってなくね?逆脚がおっこちただけでしょ? -- (名無しさん) 2012-09-19 10 05 23 安定性能でなぜかマイナス補正かかってたのがなくなって早くなった>軽二中二 -- (名無しさん) 2012-09-19 12 05 22 重四の -- (名無しさん) 2012-09-21 14 42 33 ↑どこが強くなったんだ、ゴラァッ!って言いたいんですよね、解ります。重四なんて威力パルスやショットプラズマの餌でしかないもんな。こんなので強化された、とかってわめいてんの?笑えさせてくれるwwwww -- (名無しさん) 2012-10-24 20 59 08 1.05の予告が出たわけだが、そろそろ1.05まとめ用のページも、形だけでも作っとくべきかね?項目はこのページ流用してさ。 -- (名無しさん) 2012-10-25 14 36 16 近接籠れは言い過ぎでは? 近接使えないやつの遠吠えにしか聞こえないが… -- (名無しさん) 2012-11-02 14 28 24 ブレオンなんぞ敵に回ったときにカモればよろし。味方だったり部屋に複数いたらご愁傷様 -- (名無しさん) 2012-11-05 20 20 41 まぁ、ブレオンにしろ変態アセンやるなら同じチームの奴に許可とってからの方が良いわな、フリーなんだから気楽にいこうぜ -- (名無しさん) 2012-11-05 21 29 23 なんにせよブレーダーを名乗るなら隠れて闇討ちの機会をうかがい続けるのはやめてくれ、な? -- (名無しさん) 2012-11-06 20 21 37 で、現状面白いの? -- (名無しさん) 2012-11-06 23 11 55 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/genesis-ticket/pages/166.html
【用語名】 環境神群 【読み方】 かんきょうしんぐん 【詳細】 かつて神々が荒廃した星を捨てる時、いつかまた戻ってこれるようにと環境の修復を命令された神達を指す。 神々の残した命令をあまりに忠実にこなした彼らは、環境を暴走レベルで復元してした結果、 人々は比較的安全な神州から外の大陸に出ることができなくなってしまった。 地脈の集積地といえる主脈の奥深くに存在しており、 力を失った神々が星に戻ってきた際に野生化していたため、神州から外に出られなくなっていた人々は土地などの問題を解決すべく七百人踏破隊を組織し環境神群とのコンタクトに臨み、成功させる。 なお、この時に七百人踏破隊が踏破した距離はおよそ六千キロ、これは地球の半径に等しい。 現在は地脈と同化しているため名前を持たない世界そのものと呼べる存在となっており、 その土地に住まう者たちと契約することで加護を与えている。 本多・正純いわく彼らはひとえに「真面目過ぎた」とのこと。 現在においても破壊された大地の修復は彼らが行っているらしい。 帝が京にて環境神群を神器の力を借りて制御していると表向き伝えられているが、実は帝は環境神群を降霊させ対話し、管理するための自動人形だった。 8巻下におけるやりとりにおいて、環境神群は外界の環境修復をほぼ終えていることが明らかになっている。
https://w.atwiki.jp/shin1/pages/13.html
Maven2 Maven2 test オプション Snapshotについて deployする側 使用する側 各plugin 依存性の定義について optional dependency/exclusions/exclusion 親子関係の注意点 test testをskipする。「-Dmaven.test.skip=true」 test対象を指定する。「-Dtest=hoge」ワイルドカードも使える。 testの失敗を無視して続行する。「-Dmaven.test.failure.ignore=true」 オプション pluginのupdateを確認しつつ実行 「-U」オプション offlineモード 「-o」オプション ヒープサイズの指定 環境変数「MAVEN_OPTS」に「-Xmx128m」とか。 Snapshotについて version番号に"+-SNAPSHOT"にマッチする文字列を指定する事で、通常のartifactとは違う配布方式をとる事ができる。 deployする側 //distributionManagement/snapshotRepositoryで設定したServerに配布される。 //distributionManagement/snapshotRepository/uniqueVersionに"true"を設定すると、配布する時のjar名が"artifactId-+-SNAPSHOT.jar"ではなく、"artifactId-+日付.時刻.jar"となる。 distributionManagement snapshotRepository id ftp-hoge /id url ftp //hoge/fuga /url /snapshotRepository /distributionMangement 使用する側 repositories/repository/snapshots/updatePolicy要素に"always"を設定する事で「常に最新かどうかのチェックを行う」という動作をしてくれる。 repositories repository id shin1 /id url http //hoge.fuga.com/shin1 /url snapshots updatePolicy always /updatePolicy /snapshots /repository /repositories 各plugin pom.xml内で省略されている、default設定を出力 mvn projecthelp effective-pom 読み込んだsetting.xmlを出力 mvn help effective-settings -Doutput=effective-settings.xml artifactの作成 mvn archetype create -DgroupId=${groupId} -DartifactId=${artifactId} [TODO]最近、どのマシンだかで使った場合に対話形式でGroupIdとかを設定できたんだが…? 「archetypeArtifactId」属性でarchetypeの種類を指定できる。maven-archetype-webappならwebappとか。maven標準でないarchetypeArtifactを使う場合は「archeTypeGroupId」の指定も必要。 生成物を全部削除して、ソースとjarをinstall mvn clean source jar install ソースをパッケージ(pom.xmlも含む) mvn assembly assembly -DdescriptorId=src 依存jarも含めてパッケージ mvn assembly assembly -DdescriptorId=jar-with-dependencies EclipseのworkspaceにM2_REPOを設定する。 maven eclipse add-maven-repo -Declipse.workspace=XXXXXX 依存性の定義について maven公式|http //maven.apache.org/pom.html#Dependencies optional 他から依存されたときに、無駄に依存を強制しないようにするため。例えば、自分は必ずhoge.jarが必要だが、自分に依存するartifactは必ずしも必要ないかもしれない、といった場合にoptional=trueを設定しておくと、行儀が良いかもしれない。 dependency/exclusions/exclusion 依存先の依存を引っ張ってこないようにする時は、ここで無視したいgroupIdとartifactIdを指定する。 親子関係の注意点 parentproject\trunk pom.xml subproject1 pom.xml(parentprojectをparentとして指定) subproject2 ... こんな構成のとき、subproject1のみinstallしても、親のpom.xmlがリポジトリに無いときに別projetからsubproject1を解決できない。当たり前といえば当たり前だが、手を抜こうとして最初はまった。
https://w.atwiki.jp/arprojectfun/pages/49.html
ノート - OpenCV - OpenCVの導入 OpenCVのダウンロード OpenCVのインストール VisualStudioの設定インクルード・ライブラリパスの設定 プロジェクトの設定 依存するライブラリの設定 サンプルを動かす解説構造体 cvCreateCameraCapture関数 cvSetCaptureProperty関数 cvQueryFrame関数 真っ黒画面しか表示されないときは注意コメントどうぞ OpenCVのダウンロード まず、ここからOpenCV1.0をダウンロードして下さい。http //sourceforge.net/projects/opencvlibrary/ DownLoadの右側のViewAllをクリックするとすべてのバージョンの一覧が出てきます。 2.0ではwebカメラの映像を扱えないので注意してください。 OpenCVのインストール 次にダウンロードしてきた実行ファイルを起動して、インストールします。適当にOKや次を押して進めてください。 基本的にデフォルトでいいです。 システム変数のPathの設定する。[システムのプロパティ] - [詳細設定] - [環境変数]を開きます。 システム変数のPATH(Path)の値に 「C \Program Files\OpenCV\bin」 を後ろに追加する。 もしPathであるなら、PATHに変更しないとOpenCVは使えない。(システム上は大文字でも小文字でも構いません) VisualStudioの設定 インクルード・ライブラリパスの設定 インクルードパスに以下を追加します。C \Program Files\OpenCV\cv\include C \Program Files\OpenCV\cvaux\include C \Program Files\OpenCV\cxcore\include C \Program Files\OpenCV\otherlibs\highgui ライブラリパスに以下を設定しますC \Program Files\OpenCV\lib プロジェクトの設定 依存するライブラリの設定 プロジェクトのプロパティを開く [構成プロパティ] - [リンカ] - [入力]を開く 以下のライブラリを依存するファイルに追加する cvcam.lib highgui.lib cxts.lib cv.lib cxcore.lib ml.lib cvaux.lib cvhaartraining.lib これで下準備は完了です サンプルを動かす 以下は公式が出しているサンプルから抜粋したものです。 #include cv.h #include highgui.h #include ctype.h int main (int argc, char **argv){ CvCapture *capture = 0; IplImage *frame = 0; double w = 320, h = 240; int c; // (1)コマンド引数によって指定された番号のカメラに対するキャプチャ構造体を作成する if (argc == 1 || (argc == 2 strlen (argv[1]) == 1 isdigit (argv[1][0]))) capture = cvCreateCameraCapture (argc == 2 ? argv[1][0] - 0 0); /* この設定は,利用するカメラに依存する */ // (2)キャプチャサイズを設定する. cvSetCaptureProperty (capture, CV_CAP_PROP_FRAME_WIDTH, w); cvSetCaptureProperty (capture, CV_CAP_PROP_FRAME_HEIGHT, h); cvNamedWindow ("Capture", CV_WINDOW_AUTOSIZE); // (3)カメラから画像をキャプチャする while (1) { frame = cvQueryFrame (capture); cvShowImage ("Capture", frame); c = cvWaitKey (2); if (c == \x1b ) break; } cvReleaseCapture ( capture); cvDestroyWindow ("Capture"); return 0; } 空のプロジェクトを作成して、以上のコードをコピペしてください。 ビルドして実行できれば成功です。 解説 構造体 CvCapture *capture; キャプチャするカメラの情報を格納する変数 IplImage *frame; OpenCVで扱える画像を格納する変数 cvCreateCameraCapture関数 capture = cvCreateCameraCapture (argc == 2 ? argv[1][0] - 0 0); 引数にカメラの番号を入れると、その番号のカメラの情報を返す関数 サンプルではコマンド引数に指定されたカメラの話のお号を引数にしている。 無かった場合は0番目を入れている。 cvSetCaptureProperty関数 cvSetCaptureProperty (capture, CV_CAP_PROP_FRAME_WIDTH, w); cvSetCaptureProperty (capture, CV_CAP_PROP_FRAME_HEIGHT, h); カメラのキャプチャサイズを設定する関数 第1引数にキャプチャするカメラの変数、第2引数に設定する項目、第3引数にはその値を指定します。 cvQueryFrame関数 frame = cvQueryFrame (capture); 引数にCvCaptureを入れてやると、そのカメラの現在のフレームを返り値として返してくれる。 サンプルではその画像を常に持ってきて、ウィンドウに表示している。 真っ黒画面しか表示されないときは VistaでOpenCV こちらの記事を参考に、ewclib.h をインクルードしてみてください。 注意 上記の記事のサンプルコードは内容が少し古いので、 ビルドするにはすこし修正が必要です。 【修正点1】 14行目辺りの EWC_Open(SIZE_X, SIZE_Y, FPS); を EWC_Open(CAM_NUM, SIZE_X, SIZE_Y, FPS); に変更する。 【修正点2】 32行目辺りの EWC_Close(); を EWC_Close(CAM_NUM); もしくは、 EWC_CloseAll(); に変更する。 コメントどうぞ 名前 コメント